﻿using blackhouse.BlackApart.Business.Furnitures;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace blackhouse.BlackApart.Business.Apartments {

    /// <summary>
    /// Definuje ogólną charakterystykę apartamentu
    /// </summary>
    public interface IApartmentGroup {

        #region Properties

        int Id { get; }
        string Name { get; set; }
        string ShortName { get; set; }
        int NumberOfPeople { get; set; }
        IApartmentLocation DefaultLocalization { get; set; }
        float AreaSize { get; set; }
        double Popularity { get; set; }
        float Stars { get; set; }
        IApartmentPhoto MainPhoto { get; set; }
        DateTime LastMod { get; set; }
        ApartmentOptionField[] Fields { get; set; }
        string Description { get; }
        string LidDescription { get; }
        string Url { get; set; }
        Guid Guid { get; set; }

        #endregion

        #region Methods

        bool Save();

        bool Delete();

        bool Exists();

        IApartment MakeDefaultApartment();

        IApartment[] GetApartments();

        IApartmentGroup[] GetAllApartmentTypes();

        object GetProperty(string propertyKey);

        Dictionary<string, string> GetArrayProperty(string propertyKey);

        Seo GetSeo();

        IFurniture[] GetFurnitures();

        #endregion


        IApartmentPhoto[] GetAllPhotos();
    }

}
